# coding=utf-8
from lib.Character import ProfessionType
from lib.Character.Base import Base
from lib.Character.Hero import Hero
from lib.Player.Player import Player
from lib.Player.Property import Property
from lib.Skill import EffectType
from lib.Skill.Buff import BuffBase
from lib.Skill.Effect import Effect
from lib.Skill.Skill import Skill

base_data = {
    'stamina': 5,
    'strengt': 10,
    'agility': 3,
    'intellect': 2,
    'dodge': 0,
    'combo': 0,
    'critical': 0,
    'counter': 0
}

uplevel_data = {
    'stamina': .3,
    'strengt': .3,
    'agility': .3,
    'intellect': 0,
    'dodge': 0,
    'combo': 0,
    'critical': 0,
    'counter': 0
}

h1_s1_effect = [
    # Effect('真实伤害', EffectType.DAMAGE),
    Effect('物理伤害', EffectType.PHYSICAL_DAMAGE),
    # Effect('物理护甲', EffectType.PHYSICAL_ARMOR),
    # Effect('回复生命', EffectType.HEAL),
    # Effect('魔法伤害', EffectType.MAGIC_DAMAGE),
    # Effect('魔法护甲', EffectType.MAGIC_ARMOR),

    # Effect('持续增加属性', EffectType.BUFF_BASE, round=3),
    # Effect('物理伤害', EffectType.PHYSICAL_DAMAGE),

    # Buff('每回合 增加真实伤害', EffectType.BUFF_DAMAGE_PHYSICAL, 1),
    # BuffBase('祝福 1 回合', 1,
    #          Base(
    #              {'stamina': 30,
    #               'strengt': 10,
    #               'agility': 10,
    #               'intellect': 10,
    #               'dodge': 10,
    #               'combo': 10,
    #               'critical': 10,
    #               'counter': 10
    #               })),
    # Buff('清醒', EffectType.BUFF_VERTIGO, round=3),
    # Buff('增加真实伤害', EffectType.BUFF_DAMAGE, 3),
    # Buff('增加物理伤害', EffectType.BUFF_DAMAGE_PHYSICAL, 3),
    # Buff('增加魔法伤害', EffectType.BUFF_DAMAGE_MAGIC, 3),
    # Buff('每回合治疗', EffectType.BUFF_HEAL, 3),
    # Buff('治疗增量', EffectType.BUFF_OFFSET_HEAL, 3),
    # Buff('回复物理护甲', EffectType.BUFF_HEAL_PHYSICAL_ARMOR, 3),
    # Buff('回复魔法护甲', EffectType.BUFF_HEAL_MAGIC_ARMOR, 3),
    # Buff('抵消真实伤害', EffectType.BUFF_OFFSET_DAMAGE, 3),
    # Buff('抵消物理伤害', EffectType.BUFF_OFFSET_PHYSICAL_DAMAGE, 3),
    # Buff('抵消物理伤害', EffectType.BUFF_OFFSET_PHYSICAL_DAMAGE, 3),
    # Buff('抵消魔法伤害', EffectType.BUFF_OFFSET_MAGIC_DAMAGE, 3),
    # Buff('眩晕抵抗', EffectType.BUFF_VERTIGO, 3),
    # Dot('流血', EffectType.DOT_DAMAGE, 3),
    # Dot('腐朽物理护甲', EffectType.DOT_DAMAGE_PHYSICAL, 3),
    # Dot('腐朽魔法护甲', EffectType.DOT_DAMAGE_MAGIC, 3),
    # Dot('流血增伤', EffectType.DOT_EASILY_DAMAGE, 3),
    # Dot('腐朽物理护甲增伤', EffectType.DOT_EASILY_PHYSICAL_DAMAGE, 3),
    # Dot('腐朽魔法护甲增伤', EffectType.DOT_EASILY_MAGIC_DAMAGE, 3),
    # Dot('治疗抑制', EffectType.DOT_HEAL, 3),
    # Effect('回复', EffectType.HEAL),
]

h1_skill = [Skill('h1_s1', 3, h1_s1_effect)]
h2_skill = [Skill('h2_s1', 1)]
h1 = Hero('h1', ProfessionType.WARRIOR, base_data, uplevel_data, 10, h1_skill)
h2 = Hero('h2', ProfessionType.WARRIOR, base_data, uplevel_data, 10, h2_skill)

# heros = [h1, h2]
heros = [h1]

gold = Property()
player = Player('test', 3, gold)

player.setHeros(heros)
